<?php if ( ! defined("BASEPATH")) exit("No direct script access allowed");

class Produtos extends CI_Controller {
		
	public function __construct(){
		parent::__construct();
		init_painel();
		esta_logado();
	}

	public function index(){
		$this->gerenciar();
	}
	
	public function cadastrar(){
		if(is_admin() == FALSE):
			set_msg('msgerro', 'Seu usuário não tem permissão para executar esta operação.', 'erro');
			redirect(base_url('painel/produtos/gerenciar'));
		endif;
		$this->form_validation->set_message('is_unique', 'Este %s já está cadastrado no sistema');
		$this->form_validation->set_rules('nome', 'NOME DO PRODUTO', 'required|ucfirst');
		$this->form_validation->set_rules('valor', 'VALOR', 'required');
		$this->form_validation->set_rules('valor_desconto', 'VALOR DE DESCONTO', '');
		//$this->form_validation->set_rules('quantidade', 'QUANTIDADE', 'numeric');
		$this->form_validation->set_rules('descricao', 'DESCRIÇÃO', '');
		$this->form_validation->set_rules('preco_custo', 'PREÇO DE CUSTO', 'required');
		$this->form_validation->set_rules('codigo_barras', 'CÓDIGO DE BARRAS', 'is_unique[produtos.codigo_barras]|numeric|exact_length[13]');
		if ($this->form_validation->run()==TRUE):
			$dados = elements(array('nome', 'descricao'), $this->input->post(NULL, TRUE));
			/* Setar SLUG */
			$slug = slug($this->input->post('nome', TRUE));
			
			$i = 1;
			$listar_slug = $this->produtos->get_byid($slug, 'slug')->num_rows();
			if($listar_slug != 0):
				while($listar_slug != 0):
					$listar_slug = $this->produtos->get_byid($slug.'-'.$i, 'slug')->num_rows();
					if($listar_slug != 0):
						$i++;
					else:
						$dados['slug'] = $slug.'-'.$i;
					endif;
				endwhile;
			else:
				$dados['slug'] = $slug;
			endif;
			
			$dados['created'] = date('Y-m-d H:i:s');
			$valor = modificaDinheiroBanco($this->input->post('valor', TRUE));
			$dados['valor'] = $valor;
			$dados['preco_custo'] = modificaDinheiroBanco($this->input->post('preco_custo', TRUE));
			$imagem_enviar = $this->input->post('imagem_enviar');
			
			/* Código de Barras */
			$verifica_disponibilidade = FALSE;
			while($verifica_disponibilidade == FALSE):
				$codigo_barras = rand(100000000, 999999999);
				$codigo_barras = codigo_barras('789'.$codigo_barras);
				$disponivel = $this->produtos->get_byid($codigo_barras, 'codigo_barras')->num_rows();
				if($disponivel != '0'):
					$verifica_disponibilidade = FALSE;
				else:
					$verifica_disponibilidade = TRUE;
					$dados['codigo_barras'] = $codigo_barras;
				endif;
			endwhile;
			
			$id_produto = $this->produtos->do_insert($dados);
			
			//Enviar imagem para a pasta
			if($imagem_enviar != NULL):
				$imagem = str_replace('data:image/png;base64,', '', $imagem_enviar);
				$nova_imagem = base64_to_jpeg($imagem, "./uploads/".$id_produto.".png");
			endif;
			
			/* Inserir na Tabela Produtos_Atributos */
			$atributos = $this->atributo->get_all()->result();
			foreach($atributos as $linha_atributos):
				$id_atributo = $this->input->post($linha_atributos->id);
				if($id_atributo != '0' || $id_atributo != NULL):
					$dados2['id_produto'] = $id_produto;
					$dados2['id_atributo'] = $id_atributo;
					$this->produtos->do_insert_atributos($dados2, FALSE);
				endif;
			endforeach;
			
			/* Inserir na Tabela produto_pedido_item */
			$iditem = $this->input->post('iditem');
			if($iditem && $iditem != NULL && $iditem != ''):
				$dados3['id_pedido_item'] = $iditem;
				$dados3['id_produto'] = $id_produto;
				$dados3['id_pedido'] = $this->input->post('idpedido');
				$this->produtos->do_insert_item($dados3, FALSE);
			endif;
			
		    set_msg('msgok', 'Cadastro efetuado com sucesso', 'sucesso');
			
			$idpedido = $this->input->post('idpedido');
			if($idpedido && $idpedido != NULL && $idpedido != '' && $idpedido != '0'):
				redirect(base_url('painel/pedidos/receber_produtos/'.$idpedido));
			else:
				redirect(current_url());
			endif;
		endif;
		$data = array(
			'tela' 				=> 'cadastrar',
			'produtos_all'		=> $this->produtos->get_all()->result()
		);
		set_tema('headerinc', load_css(array('select2/select2-foundation5.min')));
		set_tema('footerinc', load_js(array('tinymce/tinymce.min', 'tinymce/initTinymce.min', 'maskmoney/jquery.maskMoney.min', 'maskmoney/maskmoney-script.min', 'select2/select2.min', 'select2/select2_locale_pt-BR.min', 
		'select2/select2-script.min', 'webcam', 'app')));
		set_tema('titulo', 'Cadastro de Produtos');
		set_tema('conteudo', load_modulo('painel', 'produtos', $data));
		load_template();
	}

	public function gerenciar(){
		$data = array(
			'tela' => 'gerenciar',
			'query' => $this->produtos->get_all()->result()
		);
		set_tema('headerinc', load_css(array('datatables/dataTables.foundation.min')));
		set_tema('footerinc', load_js(array('datatables/jquery.dataTables.min', 'datatables/dataTables.foundation.min', 'app.min')));
		set_tema('titulo', 'Listagem de Produtos');
		set_tema('conteudo', load_modulo('painel', 'produtos', $data));
		load_template();
	}

	public function editar(){
		if(is_admin() == FALSE):
			set_msg('msgerro', 'Seu usuário não tem permissão para executar esta operação.', 'erro');
			redirect(base_url('painel/produtos/gerenciar'));
		endif;
		$idprodutos = $this->uri->segment(4);
		$this->form_validation->set_rules('nome', 'NOME DO PRODUTO', 'required|ucfirst');
		$this->form_validation->set_rules('valor', 'VALOR', 'required');
		$this->form_validation->set_rules('valor_desconto', 'VALOR DE DESCONTO', '');
		//$this->form_validation->set_rules('quantidade', 'QUANTIDADE', 'numeric');
		$this->form_validation->set_rules('descricao', 'DESCRIÇÃO', '');
		$this->form_validation->set_rules('preco_custo', 'PREÇO DE CUSTO', 'required');
		$this->form_validation->set_rules('codigo_barras', 'CÓDIGO DE BARRAS', '');
		if ($this->form_validation->run()==TRUE):
			$dados = elements(array('nome', 'descricao'), $this->input->post(NULL, TRUE));
			
			//Setar SLUG
			$slug = slug($this->input->post('nome', TRUE));
			$i = 1;
			$listar_slug = $this->produtos->get_byslug($idprodutos, $slug)->num_rows();
			if($listar_slug != 0):
				while($listar_slug != 0):
					$listar_slug = $this->produtos->get_byslug($idprodutos, $slug.'-'.$i)->num_rows();
					if($listar_slug != 0):
						$i++;
					else:
						$dados['slug'] = $slug.'-'.$i;
					endif;
				endwhile;
			else:
				$dados['slug'] = $slug;
			endif;
			$dados['preco_custo'] = modificaDinheiroBanco($this->input->post('preco_custo', TRUE));
			$valor = modificaDinheiroBanco( $this->input->post('valor', TRUE));
			$dados['valor'] = $valor;
			$imagem_enviar = $this->input->post('imagem_enviar');
			
			/* Valor de Desconto */
			$forma_valor = $this->input->post('forma_valor', TRUE);
			$valor_desconto = modificaDinheiroBanco($this->input->post('valor_desconto', TRUE));
			$porcentagem_desconto = $this->input->post('porcentagem_desconto', TRUE);
			if($forma_valor == 'dinheiro'):
				if($valor_desconto != NULL && $valor_desconto != '0'):
					$dados['valor_desconto'] = $valor_desconto;
				endif;
			elseif($forma_valor == 'porcentagem'):
				if($porcentagem_desconto != NULL && $porcentagem_desconto != '0'):
					$porcentagem_desconto = ($valor / 100) * (100 - $porcentagem_desconto);
					$dados['valor_desconto'] = $porcentagem_desconto;
				endif;
			endif;
			
			if(is_admin()) $dados['ativo'] = ($this->input->post('ativo', TRUE) == 1) ? 1 : 0;
			$id_produto = $this->input->post('idprodutos', TRUE);
			$this->produtos->do_update($dados, array('id'=>$id_produto), FALSE);
			
			//Enviar imagem para a pasta
			if($imagem_enviar != NULL):
				$arquivo = glob('./uploads/'.$id_produto.'.png');
				if($arquivo != NULL):
					unlink(FCPATH . 'uploads/' . $id_produto.'.png');
				endif;
				$imagem = str_replace('data:image/png;base64,', '', $imagem_enviar);
				$nova_imagem = base64_to_jpeg($imagem, "./uploads/".$id_produto.".png");
			endif;
			
			/* Deletar todos os atributos do Produto */
			$this->produtos->do_delete_atributo(array('id_produto'=>$idprodutos), FALSE);
			
			/* Inserir na Tabela Produtos_Atributos */
			$atributos = $this->atributo->get_all()->result();
			foreach($atributos as $linha_atributos):
				$id_atributo = $this->input->post($linha_atributos->id);
				if($id_atributo != '0' || $id_atributo != NULL):
					$dados2['id_produto'] = $id_produto;
					$dados2['id_atributo'] = $id_atributo;
					$this->produtos->do_insert_atributos($dados2, FALSE);
				endif;
			endforeach;
			
			set_msg('msgok', 'Alteração efetuada com sucesso.', 'sucesso');
			redirect(current_url());
		endif;
		if ($idprodutos == NULL):
			set_msg('msgerro', 'Escolha um título para alterar.', 'erro');
			redirect('painel/produtos/gerenciar');
		endif;
		$data = array(
			'tela'				=> 'editar',
			'query'				=> $this->produtos->get_byid($idprodutos)->row(),
			'produtos_all'		=> $this->produtos->get_all()->result()
		);
		set_tema('headerinc', load_css(array('select2/select2-foundation5.min')));
		set_tema('footerinc', load_js(array('tinymce/tinymce.min', 'tinymce/initTinymce.min', 'maskmoney/jquery.maskMoney.min', 'maskmoney/maskmoney-script.min', 'select2/select2.min', 'select2/select2_locale_pt-BR.min', 
		'select2/select2-script.min', 'webcam', 'app')));
		set_tema('titulo', 'Alteração de Produtos');
		set_tema('conteudo', load_modulo('painel', 'produtos', $data));
		load_template();
	}

	public function excluir(){
		if(is_admin() == FALSE):
			set_msg('msgerro', 'Seu usuário não tem permissão para executar esta operação.', 'erro');
			redirect(base_url('painel/produtos/gerenciar'));
		endif;
		if (is_admin(TRUE)):
			$idprodutos = $this->uri->segment(4);
			if ($idprodutos != NULL):
				$query = $this->produtos->get_byid($idprodutos);
				if ($query->num_rows()==1):
					$query = $query->row();
					$this->produtos->do_delete(array('id'=>$query->id), FALSE);
					/* Exclusão de Atributos */
					$atributos = $this->produtos->get_byid_atributo($idprodutos, 'id_produto')->result();
					if($atributos != NULL):
						foreach($atributos as $linha_atributos):
							$this->produtos->do_delete_atributo(array('id_produto'=>$linha_atributos->id_produto), FALSE);
						endforeach;
					endif;
					unlink(FCPATH . 'uploads/' . $idprodutos.'.png');
					unlink(FCPATH . 'uploads/thumbs/100x100/' . $idprodutos.'.png');
					set_msg('msgok', 'Registro excluído com sucesso', 'sucesso');
				endif;
			else:
				set_msg('msgerro', 'Escolha um produto para excluir', 'erro');
			endif;
		endif;
		redirect('painel/produtos/gerenciar');
	}
	
}

/* End of file produtos.php */
/* Location: ./application/controllers/produtos.php */